#################################################################
#
#  Raspbuddies
#  University of Nantes
#  M2 -Alma
#  2012 - 2013
#
################################################################# 
#
#  Matthieu Allon - Pauline Folz - Teko Hemazro - Amine Lyazid
#  Adrien Quillet - Nicolas Rault - Kévin Simon
#
#################################################################

class Tests 
  
  # Initialize process
  def init()
   # Firts node
   @theone = CausalAgent.new("T0", :ext_ip => "192.168.2.172", :ext_port => 4000)
   @theone.run_bg
   @theone.initProcess()

   @a = CausalAgent.new("T1", :ext_ip => "192.168.2.172", :ext_port => 4001)
   @a.run_bg
   @a.initProcess()
   
   @b = CausalAgent.new("T2", :ext_ip => "192.168.2.172", :ext_port => 4002)
   @b.run_bg
   @b.initProcess()

   @c = CausalAgent.new("T3", :ext_ip => "192.168.2.172", :ext_port => 4003)
   @c.run_bg
   @c.initProcess()
   
   join()
  end
  
  # Process join network
  def join()
     @a.sync_do {
        @a.pipe_join <+ [[@theone.ip_port]]
    }
    
    @b.sync_do {
        @b.pipe_join <+ [[@theone.ip_port]]
    }

    @c.sync_do {
        @c.pipe_join <+ [[@theone.ip_port]]
    }
    
    sleep(5)
  end
  
  # See DOC for futher information
  def test1()
      var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(0),
				  4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(1),
				  16=>Bud::MaxLattice.new(0)})

      @b.sync_do {
	  @b.bcast_send <+ [["a", 3, var]]
	  @b.inclock <+ [[0,var]]
      }
  
  
      var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(0),
				  4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(1),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(1),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(1),
				  16=>Bud::MaxLattice.new(0)})

      @a.sync_do {
	  @a.bcast_send <+ [["b", 3, var]]
	  @a.inclock <+ [[0,var]]
      }
      
      
      var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(0),
				4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(2),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(2),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(1),
				16=>Bud::MaxLattice.new(0)})

      @a.sync_do {
	  @a.bcast_send <+ [["c", 3, var]]
	  @a.inclock <+ [[0,var]]
      }

      
      
      var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(0),
				4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(1),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(2),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(3),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(1),
				16=>Bud::MaxLattice.new(0)})
      
      @c.sync_do {
	  @c.bcast_send <+ [["d", 3, var]]
	  @c.inclock <+ [[0,var]]
      }
      
    var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(0),
				4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(1),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(3),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(4),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(1),
				16=>Bud::MaxLattice.new(0)})

      @a.sync_do {
	  @a.bcast_send <+ [["e", 3, var]]
	  @a.inclock <+ [[0,var]]
      }
      
      
      var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(0),
				4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(1),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(4),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(5),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(1),
				16=>Bud::MaxLattice.new(0)})

      @a.sync_do {
	  @a.bcast_send <+ [["f", 3, var]]
	  @a.inclock <+ [[0,var]]
      }
  end 
  
  def test1Desordre()
    var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(0),
                             4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
                             8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
                             12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(1),
                             16=>Bud::MaxLattice.new(0)})

      @b.sync_do {
	  @b.bcast_send <+ [["a", 3, var]]
	  @b.inclock <+ [[0,var]]
      }
      
      
      var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(0),
				4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(1),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(3),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(4),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(1),
				16=>Bud::MaxLattice.new(0)})

      @a.sync_do {
	  @a.bcast_send <+ [["e", 3, var]]
	  @a.inclock <+ [[0,var]]
      }
      
      
      var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(0),
				  4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(1),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(1),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(1),
				  16=>Bud::MaxLattice.new(0)})

      @a.sync_do {
	  @a.bcast_send <+ [["b", 3, var]]
	  @a.inclock <+ [[0,var]]
      }
      
      var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(0),
				4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(1),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(2),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(3),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(1),
				16=>Bud::MaxLattice.new(0)})
      
      @c.sync_do {
	  @c.bcast_send <+ [["d", 3, var]]
	  @c.inclock <+ [[0,var]]
      }
      
      var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(0),
				4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(2),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(2),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(1),
				16=>Bud::MaxLattice.new(0)})

      @a.sync_do {
	  @a.bcast_send <+ [["c", 3, var]]
	  @a.inclock <+ [[0,var]]
      }
      
      var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(0),
				4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(1),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(4),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(5),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(1),
				16=>Bud::MaxLattice.new(0)})

      @a.sync_do {
	  @a.bcast_send <+ [["f", 3, var]]
	  @a.inclock <+ [[0,var]]
      }
  end
  
  def test2()
    
      var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(1),
				  4=>Bud::MaxLattice.new(1),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@theone.sync_do {
	    @theone.bcast_send <+ [["a", 3, var]]
	    @theone.inclock <+ [[0,var]]
	}  
	
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(1),
				  4=>Bud::MaxLattice.new(1),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(1),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(1),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@a.sync_do {
	    @a.bcast_send <+ [["b", 3, var]]
	    @a.inclock <+ [[0,var]]
	} 
	
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(1),
				  4=>Bud::MaxLattice.new(1),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(1),
				  16=>Bud::MaxLattice.new(0)})

	@b.sync_do {
	    @b.bcast_send <+ [["c", 3, var]]
	    @b.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(1),
				  4=>Bud::MaxLattice.new(1),5=>Bud::MaxLattice.new(1),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(1),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(2),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(1),
				  16=>Bud::MaxLattice.new(0)})

	@c.sync_do {
	    @c.bcast_send <+ [["d", 3, var]]
	    @c.inclock <+ [[0,var]]
	}
  end
  
  # Ne pas lancer le processus b pour plus de lisibilité
  def test3()
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(1),
				  4=>Bud::MaxLattice.new(1),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@theone.sync_do {
	    @theone.bcast_send <+ [["a", 3, var]]
	    @theone.inclock <+ [[0,var]]
	} 
	
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(1),
				  4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(1),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@c.sync_do {
	    @c.bcast_send <+ [["aBis", 3, var]]
	    @c.inclock <+ [[0,var]]
	} 
      
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(1),
				  4=>Bud::MaxLattice.new(1),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(1),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(2),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@a.sync_do {
	    @a.bcast_send <+ [["b", 3, var]]
	    @a.inclock <+ [[0,var]]
	} 

	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(2),
				  4=>Bud::MaxLattice.new(1),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(1),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(3),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@c.sync_do {
	    @c.bcast_send <+ [["c", 3, var]]
	    @c.inclock <+ [[0,var]]
	}
	
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(3),
				  4=>Bud::MaxLattice.new(2),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(1),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(3),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@theone.sync_do {
	    @theone.bcast_send <+ [["d", 3, var]]
	    @theone.inclock <+ [[0,var]]
	}
	
	
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(3),
				  4=>Bud::MaxLattice.new(2),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(2),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(4),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@a.sync_do {
	    @a.bcast_send <+ [["e", 3, var]]
	    @a.inclock <+ [[0,var]]
	}
	
      
	
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(4),
				  4=>Bud::MaxLattice.new(2),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(1),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(4),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@c.sync_do {
	    @c.bcast_send <+ [["eBis", 3, var]]
	    @c.inclock <+ [[0,var]]
	}
	
	
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(5),
				  4=>Bud::MaxLattice.new(3),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(2),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(4),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@theone.sync_do {
	    @theone.bcast_send <+ [["f", 3, var]]
	    @theone.inclock <+ [[0,var]]
	}
	
	
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(6),
				  4=>Bud::MaxLattice.new(4),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(2),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(4),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@theone.sync_do {
	    @theone.bcast_send <+ [["g", 3, var]]
	    @theone.inclock <+ [[0,var]]
	}
	
	
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(5),
				  4=>Bud::MaxLattice.new(3),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(3),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(5),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@a.sync_do {
	    @a.bcast_send <+ [["gbis", 3, var]]
	    @a.inclock <+ [[0,var]]
	}
	
	
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(6),
				  4=>Bud::MaxLattice.new(3),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(2),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(5),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@c.sync_do {
	    @c.bcast_send <+ [["gbisTer", 3, var]]
	    @c.inclock <+ [[0,var]]
	}
  end
  
  
  def test4()
        var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(2),
				  4=>Bud::MaxLattice.new(2),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@theone.sync_do {
	    @theone.bcast_send <+ [["a", 3, var]]
	    @theone.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(2),
				  4=>Bud::MaxLattice.new(2),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(1),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(1),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@a.sync_do {
	    @a.bcast_send <+ [["b", 3, var]]
	    @a.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(3),
				  4=>Bud::MaxLattice.new(2),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(1),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(2),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@c.sync_do {
	    @c.bcast_send <+ [["c", 3, var]]
	    @c.inclock <+ [[0,var]]
	}
  end
  
  def test5()
        var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(1),
				  4=>Bud::MaxLattice.new(1),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@theone.sync_do {
	    @theone.bcast_send <+ [["a", 3, var]]
	    @theone.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(1),
				  4=>Bud::MaxLattice.new(1),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@theone.sync_do {
	    @theone.bcast_send <+ [["aClone", 3, var]]
	    @theone.inclock <+ [[0,var]]
	}
  end
  
  def test6()
   	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(1),
				  4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@b.sync_do {
	    @b.bcast_send <+ [["aBis", 3, var]]
	    @b.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(1),2=>Bud::MaxLattice.new(2),3=>Bud::MaxLattice.new(1),
				  4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@a.sync_do {
	    @a.bcast_send <+ [["b", 3, var]]
	    @a.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(2),1=>Bud::MaxLattice.new(2),2=>Bud::MaxLattice.new(2),3=>Bud::MaxLattice.new(1),
				  4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@theone.sync_do {
	    @theone.bcast_send <+ [["c", 3, var]]
	    @theone.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(3),1=>Bud::MaxLattice.new(3),2=>Bud::MaxLattice.new(2),3=>Bud::MaxLattice.new(1),
				  4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@theone.sync_do {
	    @theone.bcast_send <+ [["d", 3, var]]
	    @theone.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(1),2=>Bud::MaxLattice.new(3),3=>Bud::MaxLattice.new(2),
				  4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
				  8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
				  12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
				  16=>Bud::MaxLattice.new(0)})

	@b.sync_do {
	    @b.bcast_send <+ [["dBis", 3, var]]
	    @b.inclock <+ [[0,var]]
	}
	
	 var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(1),1=>Bud::MaxLattice.new(1),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(0),
			      4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@theone.sync_do {
	    @theone.bcast_send <+ [["a", 3, var]]
	    @theone.inclock <+ [[0,var]]
	}
  end
  
  def test7()
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(1),
			      4=>Bud::MaxLattice.new(1),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@theone.sync_do {
	    @theone.bcast_send <+ [["a", 3, var]]
	    @theone.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(0),
			      4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(1),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(1),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@a.sync_do {
	    @a.bcast_send <+ [["b", 3, var]]
	    @a.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(0),
			      4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(1),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(1),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@b.sync_do {
	    @b.bcast_send <+ [["c", 3, var]]
	    @b.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(0),
			      4=>Bud::MaxLattice.new(1),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(1),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@c.sync_do {
	    @c.bcast_send <+ [["d", 3, var]]
	    @c.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(2),
			      4=>Bud::MaxLattice.new(2),5=>Bud::MaxLattice.new(1),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(1),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(1),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@theone.sync_do {
	    @theone.bcast_send <+ [["e", 3, var]]
	    @theone.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(2),
			      4=>Bud::MaxLattice.new(2),5=>Bud::MaxLattice.new(1),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(2),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(2),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@a.sync_do {
	    @a.bcast_send <+ [["f", 3, var]]
	    @a.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(2),
			      4=>Bud::MaxLattice.new(2),5=>Bud::MaxLattice.new(1),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(2),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(2),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@b.sync_do {
	    @a.bcast_send <+ [["f", 3, var]]
	    @a.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(2),
			      4=>Bud::MaxLattice.new(3),5=>Bud::MaxLattice.new(1),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(3),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(2),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@c.sync_do {
	    @c.bcast_send <+ [["g", 3, var]]
	    @c.inclock <+ [[0,var]]
	}
  end
  
  def test8()
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(0),
			      4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(1),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(1),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@c.sync_do {
	    @c.bcast_send <+ [["a", 3, var]]
	    @c.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(0),
			      4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(1),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(1),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@a.sync_do {
	    @a.bcast_send <+ [["aBis", 3, var]]
	    @a.inclock <+ [[0,var]]
	}
	
	
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(0),
			      4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(1),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(1),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(1),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(1),
			      16=>Bud::MaxLattice.new(0)})

	@b.sync_do {
	    @b.bcast_send <+ [["c", 3, var]]
	    @b.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(0),
			      4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(1),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(2),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(2),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(1),
			      16=>Bud::MaxLattice.new(0)})

	@a.sync_do {
	    @a.bcast_send <+ [["d", 3, var]]
	    @a.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(1),
			      4=>Bud::MaxLattice.new(1),5=>Bud::MaxLattice.new(1),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(1),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(1),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@theone.sync_do {
	    @theone.bcast_send <+ [["b", 3, var]]
	    @theone.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(2),3=>Bud::MaxLattice.new(1),
			      4=>Bud::MaxLattice.new(1),5=>Bud::MaxLattice.new(1),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(1),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(1),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(2),
			      16=>Bud::MaxLattice.new(0)})

	@b.sync_do {
	    @b.bcast_send <+ [["e", 3, var]]
	    @b.inclock <+ [[0,var]]
	}
  end
  
  def test9()
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(1),
			      4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})
	@b.sync_do {
	    @b.bcast_send <+ [["a", 3, var]]
	    @b.inclock <+ [[0,var]]
	}
	
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(1),3=>Bud::MaxLattice.new(1),
			      4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@theone.sync_do {
	    @theone.bcast_send <+ [["b", 3, var]]
	    @theone.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(2),3=>Bud::MaxLattice.new(2),
			      4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@b.sync_do {
	    @b.bcast_send <+ [["c", 3, var]]
	    @b.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(1),2=>Bud::MaxLattice.new(2),3=>Bud::MaxLattice.new(2),
			      4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@a.sync_do {
	    @a.bcast_send <+ [["cBis", 3, var]]
	    @a.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(0),3=>Bud::MaxLattice.new(0),
			      4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@c.sync_do {
	    @c.bcast_send <+ [["d", 3, var]]
	    @c.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(0),1=>Bud::MaxLattice.new(1),2=>Bud::MaxLattice.new(3),3=>Bud::MaxLattice.new(3),
			      4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@b.sync_do {
	    @b.bcast_send <+ [["dBis", 3, var]]
	    @b.inclock <+ [[0,var]]
	}
	
	var = Bud::MapLattice.new({0=>Bud::MaxLattice.new(1),1=>Bud::MaxLattice.new(0),2=>Bud::MaxLattice.new(3),3=>Bud::MaxLattice.new(4),
			      4=>Bud::MaxLattice.new(0),5=>Bud::MaxLattice.new(0),6=>Bud::MaxLattice.new(0),7=>Bud::MaxLattice.new(0),
			      8=>Bud::MaxLattice.new(0),9=>Bud::MaxLattice.new(0),10=>Bud::MaxLattice.new(0),11=>Bud::MaxLattice.new(0),
			      12=>Bud::MaxLattice.new(0),13=>Bud::MaxLattice.new(0),14=>Bud::MaxLattice.new(0),15=>Bud::MaxLattice.new(0),
			      16=>Bud::MaxLattice.new(0)})

	@b.sync_do {
	    @b.bcast_send <+ [["e", 3, var]]
	    @b.inclock <+ [[0,var]]
	}
  end
  
  def stopProcess()
    @theone.stop
    @a.stop
    @b.stop
    @c.stop
  end
end
